The present invention relates to a filtering operation method of a very high-speed image processing system RIPE (real-time image processing engine) for performing large-scale pre-processing of an image in real time.
There are now increasing demands on an image processing using computers in the fields of medical electronics, industrial production, etc. The primary, aim of the development in these applications in the near future is to achieve real-time processing of 2-dimensional or multi-dimensional large-scale images (high quality image). To improve recognizing ability of the system, it is essential to increase resolution of the image itself. For this purpose, it is necessary to increase the number of pixels and to enlarge mask size of the filter in pre-processing.
Actual requirements on image processing for the next several years would be:
(1) Multi-valued and color image having more than 2048.times.2048 pixels per image which can be processed.
(2) Local parallel processing such as filtering can be accomplished at high speed for the above image.
(3) Filtering operation can be achieved using a mask of 50.times.50 size.
In the image processing, pre-processing such as filtering is often performed. As the scales of image and filter become larger, calculation time required for pre-processing rapidly increases.
In the image processing system applied practically in medical electronics and industrial applications, processing is primarily performed for an image having about 512.times.512 pixels. For the pre-processing of an image with complicated density such as X-ray film for medical use with resolution of 2048.times.2048 pixels, real-time processing is practically difficult to perform even when a general-purpose large computer such as supercomputer is used. In order to actualize a special-purpose system for efficient pre-processing of such large-scale image, it seems to be essential to perform processing in parallel and in pipeline. In particular, most of the algorithms for filtering operation frequently use parallel type multiplication and addition, and it appears that spatial parallel processing for each pixel is effective.
To store data in so-called line parallel local computation where parallel processing for each pixel is performed by preparing as many computing elements as the pixels in a line of an image, a memory of finite length having linear address has been used in the past. However, when it is attempted to execute line parallel local computation by a program using such memory, it is necessary to sequentially change (move) the storage site of original data and intermediate results in memory. One of the effective methods is to move a base pointer of the storage site of original data and intermediate results in memory. When this method is used, it is necessary to make access to the original data and the intermediate results always through the base pointer. For this purpose, the memory must be accessed twice, i.e. it is essential to change the content of the base pointer and to read the content of the memory specified by the base pointer. Also, much time is required because of overhead for processing to operate the pointer at memory boundary.
In the filtering operation of line parallel local computation for performing parallel processing for each pixel by preparing as many computation elements as the pixels in a line of an image, each processing element performs computation on pixel data of a row, for which it is in charge of processing, and receives pixel data of the other rows. This data is multiplied by weight of a filter and processings are performed such as addition. Thus, the numbers of transfers, the number of multiplications and additions between the rows are increased. Especially, when mask size of the filter is increased, much time is required for filtering operation.